package com.ref.demo2;

import com.ref.demo1.Student;

/**
 * @ClassName FourMethodClass
 * @Description 练习分别使用四种方法获取类的 Class 对象，进行相关的操作
 * @Author Kx
 * @Date 2025/3/17 15:30
 * @Version 1.0
 */
public class FourMethodClass {
    public static void main(String[] args) {
        Student student = new Student();
        // 1. 通过类的 Class 对象获取
        Class<?> stringClass = Student.class;
        System.out.println(stringClass);

        // 2. 通过类的实例获取
        Class<? extends Student> aClass = student.getClass();
        System.out.println(aClass);

        try {
            // 3. 通过 Class.forName() 方法获取
            Class<?> aClass1 = Class.forName("com.ref.demo1.Student");
            System.out.println(aClass1);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        // 4. 通过类的加载器获取
        // 获取当前类的加载器
        ClassLoader classLoader = FourMethodClass.class.getClassLoader();
        try {
            // 通过加载器获取class对象
            Class<?> aClass2 = classLoader.loadClass("com.ref.demo1.Student");
            System.out.println(aClass2);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
